package com.ruoyi.teaching.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
  * <p>
  *
  * </p>
  *
  * @author 王旭
  * @since 2025-03-03
  */
@Data
@TableName("platform_e_event")
@ApiModel(value="PlatformEEvent对象", description="")
public class PlatformEEvent implements Serializable {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "赛事发布id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "赛事名称")
    @NotBlank(message = "请输入赛事名称")
    private String eventName;

    @ApiModelProperty(value = "专业类id")
    @NotNull(message = "请选择专业类")
    private Integer professionalCategoryId;

    @ApiModelProperty(value = "专业id")
    @NotNull(message = "请选择专业标签")
    private Integer professionalId;

    @ApiModelProperty(value = "主办单位")
    @NotBlank(message = "请输入主办单位")
    private String sponsor;

    @ApiModelProperty(value = "赛事级别（0校级1省级2国家级）")
    @NotNull(message = "请选择赛事级别")
    private Integer eventLevel;

    @ApiModelProperty(value = "报名开始时间")
    @NotBlank(message = "报名开始时间不能为空")
    @Pattern(
            regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
            message = "报名开始时间格式不正确，正确格式为yyyy-MM-dd HH:mm:ss"
    )
    private String applyStartTime;

    @ApiModelProperty(value = "报名结束时间")
    @NotBlank(message = "报名结束时间不能为空")
    @Pattern(
            regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
            message = "报名结束时间格式不正确，正确格式为yyyy-MM-dd HH:mm:ss"
    )
    private String applyEndTime;


    @ApiModelProperty(value = "赛事地区")
    private String eventRegion;

    @ApiModelProperty(value = "赛事封面")
    private String eventImg;

    @ApiModelProperty(value = "赛事详情")
    private String eventDetail;

    @ApiModelProperty(value = "赛事附件")
    private String eventFile;

    @ApiModelProperty(value = "赛事报名链接")
    private String eventApplyUrl;

    @ApiModelProperty(value = "创建者id")
    private Integer createId;

    @ApiModelProperty(value = "浏览量")
    private Integer lookNum;

    @ApiModelProperty(value = "创建者")
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "更新者id")
    private Integer updateId;

    @ApiModelProperty(value = "更新者")
    private String updateBy;

    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "备注")
    private String remark;



}
